perm filename GRAPH.SAI[X,ALS]1 blob
sn#078548 filedate 1973-12-21 generic text, type T, neo UTF8
00010 BEGIN "GRAPH"
00020 DEFINE ⊂="COMMENT";
00030 DEFINE ⊃="⊂";
00040 DEFINE CR="'15",LF="'12",CRLF="CR&LF",TB="'11";
00050 REQUIRE "DPYSUB.HDR[1,PDQ]" SOURCE_FILE;
00060 INTEGER I,J,K,L,M,X,Y,LX,LY,DX,DY,CHAN5,EOF,PP,POINTP,FLAG,MUTE;
00070 STRING FILEP,READ; BOOLEAN ER;
00080 INTEGER ARRAY SAVE[0:5];
00090 INTEGER ARRAY LFILE[0:127];
00100 INTEGER ARRAY NEW[0:511];
00110 INTEGER ARRAY DPYBUF[0:4096];
00120 LABEL STARTP;
00130
00140 ⊂ Allow 1140 units on a line corresponding to 76 charactters @15 units,
00150 380 segments @ 3 and 48640 samples @ 3/128 unit, or 2.432 seconds;
00160
00170 STARTP:
00180 OUTSTR("Set MUTE level (CR for 55) ");
00190 IF (READ←INCHWL)="" THEN MUTE←55 ELSE MUTE←CVD(READ);
00200 OUTSTR("First file number (CR for 1) ");
00210 IF (READ←INCHWL)="" THEN PP←1 ELSE PP←CVD(READ);
00220 FILEP←"SEG"&CVS(PP)&".SYN[SYN,ALS]";
00230
00240 CLOSE(CHAN5); OPEN(CHAN5,"DSK",'10,2,0,0,0,EOF);
00250 LOOKUP(CHAN5,FILEP,ER);
00260 IF ER THEN OUTSTR("FILE "&FILEP&" NOT FOUND"&CRLF);
00270 ARRYIN(CHAN5,LFILE[0],'200);
00280
00290 DPYSET(DPYBUF); SETFORMAT(2,0); AIVECT(-560,-70);
00300 ⊂ Vertical numbers and vertical scale;
00310 FOR K←1 STEP 1 UNTIL 2 DO BEGIN
00320 FOR I←0 STEP 1 UNTIL 5 DO BEGIN
00330 RIVECT(-35,-7); DPYSST(CVS(I)); RIVECT(25,7);
00340 RVECT(-20,0);
00350 IF I=5 THEN DONE;
00360
00370 RVECT(0,10);
00380 FOR J←1 STEP 1 UNTIL 4 DO BEGIN
00390 RIVECT(10,0); RVECT(-10,0);RVECT(0,10); END;
00400 END;
00410 RIVECT(0,-250); RVECT(570,0); RVECT(570,0);
00420 AIVECT(-560,-460); END;
00430 ⊃ DPYOUT(0);
00440
00450 FLAG←0; AIVECT(-560,-100);
00460 FOR I←21 STEP 1 UNTIL 127 DO BEGIN "PONY"
00470 IF LFILE[I]=0 THEN DONE;
00480 L←LFILE[I] LAND '777760000000;
00490 J←LDB(POINT(14,LFILE[I],27)); K←LDB(POINT(8,LFILE[I],35));
00500
00510 IF X<J%5 THEN FOR M←X STEP 1 UNTIL J%5 DO BEGIN
00520 DPYSST(" "); X←X+1;
00530 IF X≥76 THEN IF FLAG=0 THEN BEGIN FLAG←1;
00540 RIVECT(-570,-390); RIVECT(-570,0); END;
00550 IF X≥152 THEN DONE "PONY";
00560 END;
00570 IF K<5 THEN K←5;
00580 FOR M←1 STEP 1 UNTIL K%5 DO BEGIN
00590 DPYSST(CVSTR(L)[1 TO 1]); IF (READ←CVSTR(L)[2 TO 2])≠"" THEN BEGIN
00600 RIVECT(-15,-20); DPYSST(READ); RIVECT(0,20); END;
00610 X←X+1;
00620 IF X≥76 THEN IF FLAG=0 THEN BEGIN FLAG←1;
00630 RIVECT(-570,-390); RIVECT(-570,0); END;
00640 IF X≥152 THEN DONE "PONY";
00650 END;
00660 END "PONY";
00670 ⊃ DPYOUT(0);
00680
00690 FLAG←0; AIVECT(0,-70);
00700
00710 FOR I←0 STEP 1 UNTIL 5 DO SAVE[I]←0;
00720 WHILE EOF=0 DO BEGIN "DATIN"
00730 ARRYIN(CHAN5,NEW[0],512);
00740
00750 FOR I←1 STEP 1 UNTIL 3 DO BEGIN "PLOT"
00760 LY←SAVE[I]; LX←SAVE[0]; RIVECT(LX-560,LY);
00770 FOR J←0 STEP 8 UNTIL 511 DO BEGIN
00780 X←(NEW[J] LSH -15)*3%128;
00790 IF FLAG=2 THEN BEGIN X←X-1140; IF X>1140 THEN DONE; END;
00800 IF LX≥1140 THEN BEGIN
00810 IF FLAG=0 THEN BEGIN
00820 FLAG←1; RIVECT(-570,-390); RIVECT(-570,0); END;
00830 END;
00840
00850 POINTP←POINT(9,NEW[J+1],-1);
00860 FOR K←1 STEP 1 UNTIL I DO IBP(POINTP);
00870 Y← LDB(POINTP)*3;
00880 ⊃ OUTSTR(CVS(X)&","&CVS(Y)&TB&TB);
00890 DX←X-LX; LX←X; DY←Y-LY; LY←Y;
00900 IF X=0 THEN IF J≠0 THEN BEGIN RIVECT(DX,DY); DONE; END;
00910 IF LDB(POINT(9,NEW[J+2],17)) < MUTE THEN RIVECT(DX,DY) ELSE
00920 RVECT(DX,DY); END;
00930 IF FLAG=1 THEN BEGIN
00940 FLAG←0; RIVECT(570,390); RIVECT(570,0); END;
00950 SAVE[I]←LY; RIVECT(560-LX,-LY);
00960 END "PLOT";
00970 IF X=0 THEN DONE "DATIN";
00980 IF FLAG=2 THEN IF X>1140 THEN DONE "DATIN";
00990
01000 IF LX≥1140 THEN BEGIN FLAG←2;
01010 RIVECT(0,-390); LX←LX-1140; END;
01020 SAVE[0]←LX;
01030 END "DATIN";
01040 CLOSE(CHAN5);
01050 TYPLOC(512,300); DPYOUT(0);INCHWL;
01060 GOTO STARTP;
01070 END "GRAPH";